A portion of the disclosure of this patent document contains material, which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
A. Field of the Invention
The present invention relates to the field of data communications devices, and more specifically, to the field of accessing information from a communications device.
B. Description of the Related Art
Modems typically operate in a data mode or in a command mode. In the data mode, a modem communicates data between a program executing on a local computer and a remote computer. In the command mode, the modem receives and executes commands for configuring the modem or for retrieving information about the modem. The modem may receive commands to send and to receive data in the command mode. Once the modem is in the data mode, however, it cannot receive and process commands unless the user switches the modem back to the command mode.
The commands performed by the modem include requests for information such as the modem speed, error correction mode, parity setting, the condition of the line, the number of bytes sent/received, and other information related to the status of the operation of the modem. Such information is dynamic in that it reflects the status of the modem at any given time. In executing dynamic commands, the modems typically retrieve information from data registers, from random-access memory (RAM) in the modem architecture or from programs that monitor the state of the modem.
Modems may also include commands that provide static information. Static information is typically information about the particular model or version of the modem. For example, modems typically include a xe2x80x98helpxe2x80x99 command that provides the user with information about how to use the modem. The help command may describe the operating modes of the modem (e.g. data mode, command mode), the syntax and function of its commands, the description of any diagnostic messages, and the description of any error messages. Other commands for static information may include commands that display the modem model of the modem, the version number of the modem, the features supported, and other static information. Static information is typically retrieved from the modem""s firmware, or read-only memory area.
Early modems were used in computers having either no graphical user interfaces or graphical interfaces with limited capability. The modems enabled the computer to function in terminal mode. The computer was a terminal for an application that was executing at a remote location. In this manner, applications were shared by allowing multiple users to access a central computing resource.
In terminal mode, the user establishes the connection to the application by dialing the telephone number to the remote application using a dial command (e.g. ATDT phone number) and connecting to a remote modem at the remote location. Once the connection between the local modem and remote modem is established, the user accesses the remote application by calling commands to invoke the application to execute on the remote location. The user enters user input at the computer keyboard. The user input is displayed on the computer screen at a command line, or a command prompt, at a line on the computer screen having a cursor or other marker, for input.
The modem sends the user input to the remote application executing at the remote location. The remote application receives the user input and communicates any response data to the computer. The modem receives the data and sends it to the computer for display on the computer display screen. The computer displays text received from the modem starting at the location of the cursor on the screen. The data is formatted as ASCII characters, which allowed for page formatting with codes that changed the position of the cursor, such as, line feed, page break, cursor home, etc.
When the modem is connected to the computer as a terminal, the user is able to switch between data mode and command mode. Modems typically include a mode switch command that switches between one mode to the other. For example, in some modems, the user may enter xe2x80x9c+++xe2x80x9d at the terminal while the modem is online to interrupt the data mode online state and to take the modem to an online command mode. In the online command mode, the modem will receive and execute commands. The user may then enter an xe2x80x9cATOxe2x80x9d command to the modem to cause it to go back to data mode on-line.
Computers may still use the modems to operate in terminal mode. However, the connections between computers using modems have become more sophisticated. Modems are now widely used with computers having a graphical user interface. Applications that connect to remote locations may use the modem through layers of software such as, a device driver, various protocol drivers and the operating system I/O system. In addition, the applications that use the modem typically use one or more xe2x80x9cwindowsxe2x80x9d or application screens within the display screens to display data received from the remote location. Terminal applications are available to provide a command line interface. The use of such applications has decreased however, as remote applications now provide data formats capable of displaying graphics. For example, web browsers have a graphical user interface that can be used through a modem to communicate with remote applications over the Internet.
Applications with graphical user interfaces may use modems in command mode by sending a mode switch command and sending modem commands through a modem driver interface. The user may also use the modem in command mode through a terminal application. The information commands however, display modem information on the computer screen in a terminal mode using the computer display screen as the terminal display. The information is stored in read-only memory on the device and accessed during the execution of a static information request. Even with a graphical user interface, limitations imposed by the system hierarchy employed in typical commercially available computers exist in the way the static information is stored and displayed on the terminal display.
The static information request is executed by the modem driver, which typically executes at a low level in the system hierarchy. In a typical computer, the operating system provides high-level user-type programs with access to low-level system resources that may access the hardware. The operating system includes system calls, or driver interfaces that are used in high-level programs to access the low-level resources. The low-level resources, however, do not include access to one another. For example, a modem driver cannot include a call to a disk driver thereby forming a barrier between the modem driver and an otherwise desirable way to store static information. Therefore, static information requests access information that is stored by the driver in non-volatile memory.
The system hierarchy used in the computer also limits the manner in which the modem driver displays static information. Because drivers cannot access other drivers directly, the modem driver cannot open an application screen in a graphical user interface. Application screens are generally treated as devices that must be opened with a device name using resources of the operating system. Because such resources are not available to the modem driver, the static information displayed in response to a static information request is typically displayed on an existing application screen using the device name provided in the system call to the modem driver. The device name identifies the application screen used by the terminal application in which the command was entered. The static information is displayed from the top of the terminal application screen usually overwriting other information on the screen.
The information displayed in this way is difficult to understand since the modem outputs the data while running over other data already on the display screen. In addition, the information is not persistent. Subsequent commands that output to the display overwrite the information displayed from the static information request. It would be desirable for modems to display static information in an easy to read, persistent display using graphical user interface resources.
One problem with having the static information in read-only memory, such as firmware, in the modem device is that it is difficult to configure for different languages. Physically different devices must be made available for each different language used for the static information.
Modem modems known as Winmodems and Softmodems(trademark), now perform many of the functions of the modems in software, leaving only basic functions such as those of the coder/decoder (codec) in the hardware. While such added emphasis on using software to perform modem functions such as the processing of commands in terminal mode, static information nevertheless remains stored in non-volatile memory and its display is still non-persistent and difficult to read. Modem drivers remain subject to the hierarchy of computer systems.
In modem operating systems, however, a further barrier exists in that operating systems operate using different privilege levels. Such privilege levels typically include a kernel level in which operating system resources and hardware drivers execute and a user level in which applications such as word processors, email, browsers and terminal applications execute. The different privilege levels take advantage of privilege modes provided by modem processors. The use of different privilege levels in known modems further isolate the modem driver from access to resources that would permit the display of static information in easy to read and persistent displays.
Another problem with known devices is that changes to versions of the device driver may change the way commands are used by the user. Yet the user would not be made aware of the change using, for example, a help command. The information in the firmware would remain unchanged unless the modem device was changed as well. Such firmware changes are expensive to the manufacturer and inconvenient to the user. It would be desirable for the manufacturer to be able to ship products having information in different languages without requiring unique devices for each language.
Presently, requests for static information such as the help command may only be used when in command mode and connected to a terminal application. When the modem is in data mode, the static information, like most modem commands are unavailable to the user.
It would be desirable to be able to access modem static information, and to execute other information request commands while the modem is communicating data.
In view of the above, a system in a computer is provided for displaying information from a device on a display screen using graphical user interface objects. The system includes a multitasking operating system for providing computing resources to application programs. The multitasking operating system has a scheduler and a graphical user interface. The scheduler schedules a plurality of tasks for execution using the multitasking operating system. The graphical user interface displays a plurality of application screens on the display screen.
A device interface is included for providing a program access to the device. A first application sends a device data request to the device interface for requesting device data for display on the display screen. A device driver coupled to the device interface receives the device data request from the first application. The device driver is coupled to a device command task for processing a plurality of device commands including the device data request. A second application is called by the device command task in response to the device data request. The second application sends the device data to one of the plurality of application screens.
In a further aspect of the present invention, a method is provided in a system having a device connected to a computer. The computer includes a multitasking operating system having a scheduler for scheduling tasks, a driver interface for providing access to the device, and a graphical user interface to display a plurality of application screens on a display screen. According to the method, a device command is received at a first application, the device command being a request for device information. The device command is sent via the driver interface to a device command task. The command is interpreted at the device command task. A second application is called at the device command task in accordance with the interpreting step of the device command task. The second application displays an application screen related to the device command. The second application retrieves and display device data in response to the device command.